The constraints when processing data in the medical field are frequently very different: first, there are applications which require very rapid processing of the data, such as when processing process data in the area surrounding a surgical operation, for example in the case of computer-controlled minimally invasive interventions. Secondly, there are other applications in which greater attention needs to be paid to the most comprehensive data capture possible and in which the processing time is of lesser importance, such as when analyzing data which have already been captured for a patient in connection with the drawing-up of a treatment schedule.
The result of this is that the available computer resources are accessed in quite different ways depending on the application and the purpose of use.
It follows from the instances of application outlined above by way of example that some of the processing processes are active over a relatively long period. This may result in the computer resources which are currently available fluctuating over the period of processing.
In previous systems based on the prior art, these fluctuations in the runtime conditions and/or in the computer resources were not able to be taken into account. Fixed runtime parameters, i.e. runtime parameters detected at one time, were taken as a basis. For this reason, applications were often found to be producing a deficit when changes in the system components arose during runtime, e.g. insufficient computation capacity was available for a processing process, or a processing result was generated in insufficient quality (for example an image which is displayed at much too low a resolution and is therefore unusable).
Previous solutions were based on a monolithic processing concept which permitted neither modularization of the processing processes nor flexibility toward variable system parameters.
Some real-time systems in the field of medical engineering, in particular, require the guaranteed observance of prescribed time conditions. It is thus characteristic of these systems that, by way of example, within a predefined time window a processing process needs to be completed, measurement data need to be captured and processed or particular tasks need to be initiated.
In relation to the medical data processing of image data, the present demands on the processing process may be very different overall, however. If, by way of example, images are to be processed within the context of findings analysis, then a maximum degree of accuracy for the images is crucial. The length of time that the processing process takes to display the images is of lesser importance in this case.
In contrast to this, however, data querying for images, for example, needs to involve a minimum amount of time within the context of an operative intervention. In this case, the observance of time constraints is therefore in the foreground. A system which is designed and can be used for various applications (such as a system for processing medical image data) should therefore be able to react flexibly to system conditions which change at runtime of the process and also to other conditions.
If one now also recalls that a multiplicity of processes run simultaneously, it becomes clear that the system or computer resources are subject to very great fluctuations over time.
Systems which are based on computer resources detected once and cannot respond flexibly to fluctuations regarding the computer resources are firstly susceptible to errors and secondly do not allow optimum utilization of the system resources for the current process. If the intention is to display image processing results, for example, while the available resources at runtime of the process change, then it would be desirable to match the active processing process dynamically to the altered, currently available resources without needing to interrupt the processing process.
Pipeline concepts for processing process data are known. The pipeline concept is based on sequential processing by a multiplicity of series-connected pipeline elements or pipeline processors. To allow this, the processing process needs to be structured such that it can be split into compact, smaller modules. These processing modules are then allocated individual pipeline processors. This results in the advantage that these individual modules can be more easily created, validated and matched to new demands than if one had a monolithic overall block.
The pipeline concept also entails the advantage that better load distribution in the overall system can be achieved.
The modularity of the system also allows individual modules to be combined very flexibly in another way or with other modules. Thus, the overall system can be changed without needing to create the modules per se again.
Another milieu is known to use anytime algorithms. Anytime algorithms were developed for real-time systems and have been used to date for systems in the field of artificial intelligence and robotics and are based on the approach that a processing result can be generated at any predefinable time. Depending on the scope of the time interval which is available for the processing process, the result is generated at different quality levels or grades: if the time interval is short, then the grade for the processing result is lower; if the time interval is long, then the grade for the processing result is higher.
The anytime approach allows the grade or quality of the processing result to be compared against the processing time and allows these two factors to be weighed up against one another. In anytime systems, the processing time can be determined or chosen by the user so to speak. The anytime concept requires partially redundant processing of data and in this respect is related to the parallel-processing approach.
Conversely, pipeline processing is based on a purely sequential approach.